#include "BasicBox.h"

using namespace game_engine;
using namespace game_engine::components;
using namespace game_engine::utils;

///////////////////////////////////////////////////////////////////////////////
// Constructors and Destructors
///////////////////////////////////////////////////////////////////////////////

BasicBox::BasicBox(void)
    : Component(), box()
{
    type = "BasicBox";
}

BasicBox::BasicBox(GameObject *obj, const Rect &b)
    : Component(obj), box(b)
{
    type = "BasicBox";
}

BasicBox::~BasicBox(void)
{
}

///////////////////////////////////////////////////////////////////////////////
// Other public methods
///////////////////////////////////////////////////////////////////////////////

void BasicBox::render(void) throw(...)
{
    // FIXME : retrieve position from Transformation component, and then use
    // the Size attribute to draw the box
    glColor3f(1.0, 1.0, 1.0);
    glBegin(GL_QUADS);
        glVertex2f(box.getX(), box.getY());
        glVertex2f(box.getX() + box.getWidth(), box.getY());
        glVertex2f(box.getX() + box.getWidth(), box.getY() + box.getHeight());
        glVertex2f(box.getX(), box.getY() + box.getHeight());
    glEnd();
}

///////////////////////////////////////////////////////////////////////////////
// Setters
///////////////////////////////////////////////////////////////////////////////

void BasicBox::setBox(const Rect &b)
{
    box = b;
}
